diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index 965dfaea3a..8ab9fff880 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -697,7 +697,7 @@ function main() { if [ "$SIMUS_PHY" = "1" ] ; then echo_info "Compiling physical unitary tests simulators" # TODO: fix: dlsim_tm4 pucchsim prachsim pdcchsim pbchsim mbmssim - simlist="dlsim ulsim ldpctest polartest smallblocktest nr_pbchsim nr_dlschsim nr_ulschsim nr_dlsim nr_ulsim nr_pucchsim nr_prachsim" + simlist="ldpctest dlsim ulsim polartest smallblocktest nr_pbchsim nr_dlschsim nr_ulschsim nr_dlsim nr_ulsim nr_pucchsim nr_prachsim" for f in $simlist ; do compilations \ phy_simulators $f \ diff --git a/cmake_targets/ldpctest_BG_1_Zc_176_rate_1-3_block_length_3848_maxit_5.txt b/cmake_targets/ldpctest_BG_1_Zc_176_rate_1-3_block_length_3848_maxit_5.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/cmake_targets/ldpctest_BG_1_Zc_384_rate_1-3_block_length_8000_maxit_5.txt b/cmake_targets/ldpctest_BG_1_Zc_384_rate_1-3_block_length_8000_maxit_5.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/cmake_targets/ldpctest_BG_1_Zc_384_rate_1-3_block_length_8448_maxit_5.txt b/cmake_targets/ldpctest_BG_1_Zc_384_rate_1-3_block_length_8448_maxit_5.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/cmake_targets/ldpctest_BG_2_Zc_320_rate_1-3_block_length_3200_maxit_5.txt b/cmake_targets/ldpctest_BG_2_Zc_320_rate_1-3_block_length_3200_maxit_5.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/cmake_targets/ldpctest_BG_2_Zc_384_rate_1-3_block_length_3840_maxit_5.txt b/cmake_targets/ldpctest_BG_2_Zc_384_rate_1-3_block_length_3840_maxit_5.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h index 878150a9a8..9641563e9e 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_bnProc.h @@ -30,7 +30,7 @@ #ifndef __NR_LDPC_BNPROC__H__ #define __NR_LDPC_BNPROC__H__ - +#include /** \brief Performs first part of BN processing on the BN processing buffer and stores the results in the LLR results buffer. At every BN, the sum of the returned LLRs from the connected CNs and the LLR of the receiver input is computed. diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h index 50e425753d..74b66ab0b5 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_cnProc.h @@ -438,6 +438,7 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr ymm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; min = _mm256_min_epu8(min, _mm256_abs_epi8(ymm0)); sgn = _mm256_sign_epi8(sgn, ymm0); + // Store result min = _mm256_min_epu8(min, *p_maxLLR); // 128 in epi8 is -127 diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c index 493888ebbe..13223a1e40 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder.c @@ -263,8 +263,8 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP uint8_t BG = p_decParams->BG; uint8_t numMaxIter = p_decParams->numMaxIter; e_nrLDPC_outMode outMode = p_decParams->outMode; - int8_t* cnProcBuf= p_procBuf->cnProcBuf; - int8_t* cnProcBufRes=p_procBuf->cnProcBufRes; + // int8_t* cnProcBuf= p_procBuf->cnProcBuf; + // int8_t* cnProcBufRes=p_procBuf->cnProcBufRes; // Minimum number of iterations is 1 // 0 iterations means hard-decision on input LLRs @@ -334,7 +334,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP case 384: { // nrLDPC_cnProc_BG1_Z384_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - nrLDPC_cnProc_BG1_Z384_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); //were test here + nrLDPC_cnProc_BG1_Z384_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); //we test here break; } case 352: @@ -349,7 +349,7 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP nrLDPC_cnProc_BG1_Z320_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); //nrLDPC_cnProc_BG1_Z320_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); break; - } + } case 288: { @@ -1928,8 +1928,8 @@ static inline uint32_t nrLDPC_decoder_core(int8_t* p_llr, int8_t* p_out, t_nrLDP } case 352: { - //nrLDPC_cnProc_BG1_Z352_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); - nrLDPC_cnProc_BG1_Z352_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + nrLDPC_cnProc_BG1_Z352_13_AVX2(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); + //nrLDPC_cnProc_BG1_Z352_13_AVX512(p_procBuf->cnProcBuf,p_procBuf->cnProcBufRes); break; } diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_avx512/cnProc_gen_BG1_avx512.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_avx512/cnProc_gen_BG1_avx512.c index 277cea73cf..fa538eb128 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_avx512/cnProc_gen_BG1_avx512.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_avx512/cnProc_gen_BG1_avx512.c @@ -69,8 +69,8 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Offsets are in units of bitOffsetInGroup (1*384/64)=6 // Offsets are in units of bitOffsetInGroup (1*384/64)=6 - const uint8_t lut_idxCnProcG3[3][2] = {{6,12}, {0,12}, {0,6}}; - + // const uint8_t lut_idxCnProcG3[3][2] = {{6,12}, {0,12}, {0,6}}; + const uint8_t lut_idxCnProcG3[3][2] = {{12,24}, {0,24}, {0,12}}; fprintf(fd," __m512i zmm0, min, sgn,ones,maxLLR;\n"); fprintf(fd," ones = _mm512_set1_epi8((char)1);\n"); @@ -80,10 +80,17 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 +<<<<<<< HEAD M = (lut_numCnInCnGroups[0]*Z + 63)>>31; // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>31; +======= + M = (lut_numCnInCnGroups[0]*Z + 31)>>7; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[0]*NR_LDPC_ZMAX)>>7; +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // Set pointers to start of group 3 @@ -104,7 +111,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," for (int i=0;i<%d;i+=2) {\n",M); // Abs and sign of 64 CNs (first BN) // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>31)+lut_idxCnProcG3[j][0]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>7)+lut_idxCnProcG3[j][0]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // sgn = _mm512_sign_epi16(ones, zmm0); fprintf(fd," sgn = _mm512_sign_epi16(ones, zmm0);\n"); // min = _mm512_abs_epi8(zmm0); @@ -112,7 +123,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // 32 CNs of second BN // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>31)+lut_idxCnProcG3[j][1]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>7)+lut_idxCnProcG3[j][1]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); @@ -125,11 +140,19 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); // *p_cnProcBufResBit = _mm512_sign_epi16(min, sgn); // p_cnProcBufResBit++; +<<<<<<< HEAD fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[0]>>31)+(j*bitOffsetInGroup)); // Abs and sign of 64 CNs (first BN) // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>31)+lut_idxCnProcG3[j][0]+1); +======= + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[0]>>7)+(j*bitOffsetInGroup)); + + // Abs and sign of 64 CNs (first BN) + // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>7)+lut_idxCnProcG3[j][0]+1); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // sgn = _mm512_sign_epi16(ones, zmm0); fprintf(fd," sgn = _mm512_sign_epi16(ones, zmm0);\n"); // min = _mm512_abs_epi8(zmm0); @@ -137,7 +160,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // 32 CNs of second BN // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>31)+lut_idxCnProcG3[j][1]+1); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[0]>>7)+lut_idxCnProcG3[j][1]+1); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); @@ -150,7 +177,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); // *p_cnProcBufResBit = _mm512_sign_epi16(min, sgn); // p_cnProcBufResBit++; +<<<<<<< HEAD fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[0]>>31)+(j*bitOffsetInGroup)+1); +======= + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[0]>>7)+(j*bitOffsetInGroup)+1); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 fprintf(fd," }\n"); } @@ -160,16 +191,24 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Process group with 4 BNs fprintf(fd,"//Process group with 4 BNs\n"); // Offset is 5*384/64 = 30 - const uint8_t lut_idxCnProcG4[4][3] = {{30,60,90}, {0,60,90}, {0,30,90}, {0,30,60}}; + // const uint8_t lut_idxCnProcG4[4][3] = {{30,60,90}, {0,60,90}, {0,30,90}, {0,30,60}}; + const uint8_t lut_idxCnProcG4[4][3] = {{60,120,180}, {0,120,180}, {0,60,180}, {0,60,120}}; if (lut_numCnInCnGroups[1] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 +<<<<<<< HEAD M = (lut_numCnInCnGroups[1]*Z + 63)>>31; // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>31; +======= + M = (lut_numCnInCnGroups[1]*Z + 31)>>7; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[1]*NR_LDPC_ZMAX)>>7; +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // Set pointers to start of group 4 @@ -188,7 +227,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," for (int i=0;i<%d;i++) {\n",M); // Abs and sign of 64 CNs (first BN) // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>31)+lut_idxCnProcG4[j][0]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>7)+lut_idxCnProcG4[j][0]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // sgn = _mm512_sign_epi16(ones, zmm0); fprintf(fd," sgn = _mm512_sign_epi16(ones, zmm0);\n"); // min = _mm512_abs_epi8(zmm0); @@ -198,7 +241,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over BNs for (k=1; k<3; k++) { +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>31)+lut_idxCnProcG4[j][k]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[1]>>7)+lut_idxCnProcG4[j][k]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); @@ -212,7 +259,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); // *p_cnProcBufResBit = _mm512_sign_epi16(min, sgn); // p_cnProcBufResBit++; +<<<<<<< HEAD fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[1]>>31)+(j*bitOffsetInGroup)); +======= + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[1]>>7)+(j*bitOffsetInGroup)); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 fprintf(fd," }\n"); } } @@ -222,18 +273,28 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Process group with 5 BNs fprintf(fd,"//Process group with 5 BNs\n"); // Offset is 18*384/64 = 216 - const uint16_t lut_idxCnProcG5[5][4] = {{108,216,324,432}, {0,216,324,432}, - {0,108,324,432}, {0,108,216,432}, {0,108,216,324}}; + //const uint16_t lut_idxCnProcG5[5][4] = {{108,216,324,432}, {0,216,324,432}, + // {0,108,324,432}, {0,108,216,432}, {0,108,216,324}}; + const uint16_t lut_idxCnProcG5[5][4] = {{216,432,648,864}, {0,432,648,864}, + {0,216,648,864}, {0,216,432,864}, {0,216,432,648}}; + if (lut_numCnInCnGroups[2] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 +<<<<<<< HEAD M = (lut_numCnInCnGroups[2]*Z + 63)>>31; // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>31; +======= + M = (lut_numCnInCnGroups[2]*Z + 31)>>7; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[2]*NR_LDPC_ZMAX)>>7; +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // Set pointers to start of group 4 @@ -253,7 +314,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," for (int i=0;i<%d;i++) {\n",M); // Abs and sign of 64 CNs (first BN) // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>31)+lut_idxCnProcG5[j][0]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>7)+lut_idxCnProcG5[j][0]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // sgn = _mm512_sign_epi16(ones, zmm0); fprintf(fd," sgn = _mm512_sign_epi16(ones, zmm0);\n"); // min = _mm512_abs_epi8(zmm0); @@ -263,7 +328,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over BNs for (k=1; k<4; k++) { +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>31)+lut_idxCnProcG5[j][k]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[2]>>7)+lut_idxCnProcG5[j][k]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); @@ -277,7 +346,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); // *p_cnProcBufResBit = _mm512_sign_epi16(min, sgn); // p_cnProcBufResBit++; +<<<<<<< HEAD fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[2]>>31)+(j*bitOffsetInGroup)); +======= + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[2]>>7)+(j*bitOffsetInGroup)); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 fprintf(fd," }\n"); } } @@ -286,19 +359,28 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Process group with 6 BNs fprintf(fd,"//Process group with 6 BNs\n"); // Offset is 8*384/64 = 48 - const uint16_t lut_idxCnProcG6[6][5] = {{48,96,144,192,240}, {0,96,144,192,240}, + /* const uint16_t lut_idxCnProcG6[6][5] = {{48,96,144,192,240}, {0,96,144,192,240}, {0,48,144,192,240}, {0,48,96,192,240}, - {0,48,96,144,240}, {0,48,96,144,192}}; - + {0,48,96,144,240}, {0,48,96,144,192}};*/ + const uint16_t lut_idxCnProcG6[6][5] = {{96,192,288,384,480}, {0,192,288,384,480}, + {0,96,288,384,480}, {0,96,192,384,480}, + {0,96,192,288,480}, {0,96,192,288,384}}; if (lut_numCnInCnGroups[3] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 +<<<<<<< HEAD M = (lut_numCnInCnGroups[3]*Z + 63)>>31; // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>31; +======= + M = (lut_numCnInCnGroups[3]*Z + 31)>>7; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[3]*NR_LDPC_ZMAX)>>7; +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // Set pointers to start of group 4 @@ -318,7 +400,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," for (int i=0;i<%d;i++) {\n",M); // Abs and sign of 64 CNs (first BN) // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>31)+lut_idxCnProcG6[j][0]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>7)+lut_idxCnProcG6[j][0]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // sgn = _mm512_sign_epi16(ones, zmm0); fprintf(fd," sgn = _mm512_sign_epi16(ones, zmm0);\n"); // min = _mm512_abs_epi8(zmm0); @@ -328,7 +414,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over BNs for (k=1; k<5; k++) { +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>31)+lut_idxCnProcG6[j][k]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[3]>>7)+lut_idxCnProcG6[j][k]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); @@ -342,7 +432,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); // *p_cnProcBufResBit = _mm512_sign_epi16(min, sgn); // p_cnProcBufResBit++; +<<<<<<< HEAD fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[3]>>31)+(j*bitOffsetInGroup)); +======= + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[3]>>7)+(j*bitOffsetInGroup)); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 fprintf(fd," }\n"); } } @@ -352,20 +446,32 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Process group with 7 BNs fprintf(fd,"//Process group with 7 BNs\n"); // Offset is 5*384/64 = 30 - const uint16_t lut_idxCnProcG7[7][6] = {{30,60,90,120,150,180}, {0,60,90,120,150,180}, + /* const uint16_t lut_idxCnProcG7[7][6] = {{30,60,90,120,150,180}, {0,60,90,120,150,180}, {0,30,90,120,150,180}, {0,30,60,120,150,180}, {0,30,60,90,150,180}, {0,30,60,90,120,180}, - {0,30,60,90,120,150}}; + {0,30,60,90,120,150}};*/ + const uint16_t lut_idxCnProcG7[7][6] = {{60,120,180,240,300,360}, {0,120,180,240,300,360}, + {0,60,180,240,300,360}, {0,60,120,240,300,360}, + {0,60,120,180,300,360}, {0,60,120,180,240,360}, + {0,60,120,180,240,300}}; + if (lut_numCnInCnGroups[4] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 +<<<<<<< HEAD M = (lut_numCnInCnGroups[4]*Z + 63)>>31; // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>31; +======= + M = (lut_numCnInCnGroups[4]*Z + 31)>>7; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[4]*NR_LDPC_ZMAX)>>7; +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // Set pointers to start of group 4 @@ -385,7 +491,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," for (int i=0;i<%d;i++) {\n",M); // Abs and sign of 64 CNs (first BN) // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>31)+lut_idxCnProcG7[j][0]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>7)+lut_idxCnProcG7[j][0]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // sgn = _mm512_sign_epi16(ones, zmm0); fprintf(fd," sgn = _mm512_sign_epi16(ones, zmm0);\n"); // min = _mm512_abs_epi8(zmm0); @@ -395,7 +505,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over BNs for (k=1; k<6; k++) { +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>31)+lut_idxCnProcG7[j][k]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[4]>>7)+lut_idxCnProcG7[j][k]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); @@ -409,7 +523,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); // *p_cnProcBufResBit = _mm512_sign_epi16(min, sgn); // p_cnProcBufResBit++; +<<<<<<< HEAD fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[4]>>31)+(j*bitOffsetInGroup)); +======= + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[4]>>7)+(j*bitOffsetInGroup)); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 fprintf(fd," }\n"); } } @@ -419,10 +537,15 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Process group with 8 BNs fprintf(fd,"//Process group with 8 BNs\n"); // Offset is 2*384/64 = 12 - const uint8_t lut_idxCnProcG8[8][7] = {{12,24,36,48,56,72,84}, {0,24,36,48,56,72,84}, + /* const uint8_t lut_idxCnProcG8[8][7] = {{12,24,36,48,56,72,84}, {0,24,36,48,56,72,84}, {0,12,36,48,56,72,84}, {0,12,24,48,56,72,84}, {0,12,24,36,56,72,84}, {0,12,24,36,48,72,84}, - {0,12,24,36,48,56,84}, {0,12,24,36,48,120,72}}; + {0,12,24,36,48,56,84}, {0,12,24,36,48,120,72}};*/ + + const uint8_t lut_idxCnProcG8[8][7] = {{24,48,72,96,120,144,168}, {0,48,72,96,120,144,168}, + {0,24,72,96,120,144,168}, {0,24,48,96,120,144,168}, + {0,24,48,72,120,144,168}, {0,24,48,72,96,144,168}, + {0,24,48,72,96,120,168}, {0,24,48,72,96,120,144}}; @@ -430,10 +553,17 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 +<<<<<<< HEAD M = (lut_numCnInCnGroups[5]*Z + 63)>>31; // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>31; +======= + M = (lut_numCnInCnGroups[5]*Z + 31)>>7; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[5]*NR_LDPC_ZMAX)>>7; +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // Set pointers to start of group 4 @@ -453,7 +583,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," for (int i=0;i<%d;i++) {\n",M); // Abs and sign of 64 CNs (first BN) // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>31)+lut_idxCnProcG8[j][0]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>7)+lut_idxCnProcG8[j][0]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // sgn = _mm512_sign_epi16(ones, zmm0); fprintf(fd," sgn = _mm512_sign_epi16(ones, zmm0);\n"); // min = _mm512_abs_epi8(zmm0); @@ -463,7 +597,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over BNs for (k=1; k<7; k++) { +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>31)+lut_idxCnProcG8[j][k]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[5]>>7)+lut_idxCnProcG8[j][k]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); @@ -477,7 +615,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); // *p_cnProcBufResBit = _mm512_sign_epi16(min, sgn); // p_cnProcBufResBit++; +<<<<<<< HEAD fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[5]>>31)+(j*bitOffsetInGroup)); +======= + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[5]>>7)+(j*bitOffsetInGroup)); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 fprintf(fd," }\n"); } } @@ -486,23 +628,34 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Process group with 9 BNs fprintf(fd,"//Process group with 9 BNs\n"); // Offset is 2*384/64 = 12 - const uint8_t lut_idxCnProcG9[9][8] = {{12,24,36,48,60,72,84,96}, {0,24,36,48,60,72,84,96}, + /*const uint8_t lut_idxCnProcG9[9][8] = {{12,24,36,48,60,72,84,96}, {0,24,36,48,60,72,84,96}, {0,12,36,48,60,72,84,96}, {0,12,24,48,60,72,84,96}, {0,12,24,36,60,72,84,96}, {0,12,24,36,48,72,84,96}, {0,12,24,36,48,60,84,96}, {0,12,24,36,48,60,72,96}, - {0,12,24,36,48,60,72,84}}; - + {0,12,24,36,48,60,72,84}};*/ + const uint8_t lut_idxCnProcG9[9][8] = {{24,48,72,96,120,144,168,192}, {0,48,72,96,120,144,168,192}, + {0,24,72,96,120,144,168,192}, {0,24,48,96,120,144,168,192}, + {0,24,48,72,120,144,168,192}, {0,24,48,72,96,144,168,192}, + {0,24,48,72,96,120,168,192}, {0,24,48,72,96,120,144,192}, + {0,24,48,72,96,120,144,168}}; if (lut_numCnInCnGroups[6] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 +<<<<<<< HEAD M = (lut_numCnInCnGroups[6]*Z + 63)>>31; // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>31; +======= + M = (lut_numCnInCnGroups[6]*Z + 31)>>7; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[6]*NR_LDPC_ZMAX)>>7; +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // Set pointers to start of group 9 @@ -522,7 +675,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," for (int i=0;i<%d;i++) {\n",M); // Abs and sign of 64 CNs (first BN) // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>31)+lut_idxCnProcG9[j][0]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>7)+lut_idxCnProcG9[j][0]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // sgn = _mm512_sign_epi16(ones, zmm0); fprintf(fd," sgn = _mm512_sign_epi16(ones, zmm0);\n"); // min = _mm512_abs_epi8(zmm0); @@ -532,7 +689,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over BNs for (k=1; k<8; k++) { +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>31)+lut_idxCnProcG9[j][k]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[6]>>7)+lut_idxCnProcG9[j][k]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); @@ -546,7 +707,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); // *p_cnProcBufResBit = _mm512_sign_epi16(min, sgn); // p_cnProcBufResBit++; +<<<<<<< HEAD fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[6]>>31)+(j*bitOffsetInGroup)); +======= + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[6]>>7)+(j*bitOffsetInGroup)); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 fprintf(fd," }\n"); } } @@ -555,11 +720,17 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Process group with 10 BNs fprintf(fd,"//Process group with 10 BNs\n"); // Offset is 1*384/64 = 6 - const uint8_t lut_idxCnProcG10[10][9] = {{6,12,18,24,30,36,42,48,54}, {0,12,18,24,30,36,42,48,54}, + /* const uint8_t lut_idxCnProcG10[10][9] = {{6,12,18,24,30,36,42,48,54}, {0,12,18,24,30,36,42,48,54}, {0,6,18,24,30,36,42,48,54}, {0,6,12,24,30,36,42,48,54}, {0,6,12,18,30,36,42,48,54}, {0,6,12,18,24,36,42,48,54}, {0,6,12,18,24,30,42,48,54}, {0,6,12,18,24,30,36,48,54}, - {0,6,12,18,24,30,36,42,54}, {0,6,12,36,24,30,36,42,48}}; + {0,6,12,18,24,30,36,42,54}, {0,6,12,36,24,30,36,42,48}};*/ + + const uint8_t lut_idxCnProcG10[10][9] = {{12,24,36,48,60,72,84,96,108}, {0,24,36,48,60,72,84,96,108}, + {0,12,36,48,60,72,84,96,108}, {0,12,24,48,60,72,84,96,108}, + {0,12,24,36,60,72,84,96,108}, {0,12,24,36,48,72,84,96,108}, + {0,12,24,36,48,60,84,96,108}, {0,12,24,36,48,60,72,96,108}, + {0,12,24,36,48,60,72,84,108}, {0,12,24,36,48,60,72,84,96}}; @@ -569,10 +740,17 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 +<<<<<<< HEAD M = (lut_numCnInCnGroups[7]*Z + 63)>>31; // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>31; +======= + M = (lut_numCnInCnGroups[7]*Z + 31)>>7; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[7]*NR_LDPC_ZMAX)>>7; +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // Set pointers to start of group 10 @@ -592,7 +770,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," for (int i=0;i<%d;i++) {\n",M); // Abs and sign of 64 CNs (first BN) // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>31)+lut_idxCnProcG10[j][0]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>7)+lut_idxCnProcG10[j][0]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // sgn = _mm512_sign_epi16(ones, zmm0); fprintf(fd," sgn = _mm512_sign_epi16(ones, zmm0);\n"); // min = _mm512_abs_epi8(zmm0); @@ -602,7 +784,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over BNs for (k=1; k<9; k++) { +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>31)+lut_idxCnProcG10[j][k]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[7]>>7)+lut_idxCnProcG10[j][k]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); @@ -616,7 +802,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); // *p_cnProcBufResBit = _mm512_sign_epi16(min, sgn); // p_cnProcBufResBit++; +<<<<<<< HEAD fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[7]>>31)+(j*bitOffsetInGroup)); +======= + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[7]>>7)+(j*bitOffsetInGroup)); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 fprintf(fd," }\n"); } } @@ -626,7 +816,7 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Process group with 19 BNs fprintf(fd,"//Process group with 19 BNs\n"); // Offset is 4*384/64 = 24 - const uint16_t lut_idxCnProcG19[19][18] = {{24,48,72,96,120,144,168,192,216,240,264,288,312,336,360,384,408,432}, {0,48,72,96,120,144,168,192,216,240,264,288,312,336,360,384,408,432}, + /* const uint16_t lut_idxCnProcG19[19][18] = {{24,48,72,96,120,144,168,192,216,240,264,288,312,336,360,384,408,432}, {0,48,72,96,120,144,168,192,216,240,264,288,312,336,360,384,408,432}, {0,24,72,96,120,144,168,192,216,240,264,288,312,336,360,384,408,432}, {0,24,48,96,120,144,168,192,216,240,264,288,312,336,360,384,408,432}, {0,24,48,72,120,144,168,192,216,240,264,288,312,336,360,384,408,432}, {0,24,48,72,96,144,168,192,216,240,264,288,312,336,360,384,408,432}, {0,24,48,72,96,120,168,192,216,240,264,288,312,336,360,384,408,432}, {0,24,48,72,96,120,144,192,216,240,264,288,312,336,360,384,408,432}, @@ -635,17 +825,35 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) {0,24,48,72,96,120,144,168,192,216,240,264,312,336,360,384,408,432}, {0,24,48,72,96,120,144,168,192,216,240,264,288,336,360,384,408,432}, {0,24,48,72,96,120,144,168,192,216,240,264,288,312,360,384,408,432}, {0,24,48,72,96,120,144,168,192,216,240,264,288,312,336,384,408,432}, {0,24,48,72,96,120,144,168,192,216,240,264,288,312,336,360,408,432}, {0,24,48,72,96,120,144,168,192,216,240,264,288,312,336,360,384,432}, - {0,24,48,72,96,120,144,168,192,216,240,264,288,312,336,360,384,408}}; + {0,24,48,72,96,120,144,168,192,216,240,264,288,312,336,360,384,408}};*/ + +const uint16_t lut_idxCnProcG19[19][18] = {{48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,192,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,240,288,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,288,336,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,336,384,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,384,432,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,432,480,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,480,528,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,528,576,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,576,624,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,624,672,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,672,720,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,720,768,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,768,816,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,816,864}, {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,864}, + {0,48,96,144,192,240,288,336,384,432,480,528,576,624,672,720,768,816}}; if (lut_numCnInCnGroups[8] > 0) { // Number of groups of 64 CNs for parallel processing // Ceil for values not divisible by 64 +<<<<<<< HEAD M = (lut_numCnInCnGroups[8]*Z + 63)>>31; // Set the offset to each bit within a group in terms of 64 Byte bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>31; +======= + M = (lut_numCnInCnGroups[8]*Z + 31)>>7; + + // Set the offset to each bit within a group in terms of 64 Byte + bitOffsetInGroup = (lut_numCnInCnGroups_BG1_R13[8]*NR_LDPC_ZMAX)>>7; +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // Set pointers to start of group 19 @@ -665,7 +873,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," for (int i=0;i<%d;i++) {\n",M); // Abs and sign of 64 CNs (first BN) // zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>31)+lut_idxCnProcG19[j][0]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>7)+lut_idxCnProcG19[j][0]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // sgn = _mm512_sign_epi16(ones, zmm0); fprintf(fd," sgn = _mm512_sign_epi16(ones, zmm0);\n"); // min = _mm512_abs_epi8(zmm0); @@ -675,7 +887,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) // Loop over BNs for (k=1; k<18; k++) { +<<<<<<< HEAD fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>31)+lut_idxCnProcG19[j][k]); +======= + fprintf(fd," zmm0 = ((__m512i*)cnProcBuf)[%d+i];\n",(lut_startAddrCnGroups[8]>>7)+lut_idxCnProcG19[j][k]); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 // min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); fprintf(fd," min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0));\n"); @@ -689,7 +905,11 @@ void nrLDPC_cnProc_BG1_generator_AVX512(uint16_t Z,int R) fprintf(fd," min = _mm512_min_epu8(min, maxLLR);\n"); // *p_cnProcBufResBit = _mm512_sign_epi16(min, sgn); // p_cnProcBufResBit++; +<<<<<<< HEAD fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[8]>>31)+(j*bitOffsetInGroup)); +======= + fprintf(fd," ((__m512i*)cnProcBufRes)[%d+i] = _mm512_sign_epi16(min, sgn);\n",(lut_startAddrCnGroups[8]>>7)+(j*bitOffsetInGroup)); +>>>>>>> 6d9ceaa712033dc4f28050886be43572df7c2b68 fprintf(fd," }\n"); } } 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 29fc440add..c50dec2289 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z104_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<14;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 ea326f3151..4fcc829817 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z10_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z10_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<1;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 fb060bd6a5..d1317246ca 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z112_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<15;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 e54c190f31..666e880b63 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z11_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z11_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<1;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 a78f7cfdf3..50861b59c7 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z120_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<17;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 c8201b03ab..b903469416 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z128_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<18;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 82710e8768..7139493441 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z12_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z12_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<1;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 7932adf53b..c40e94492b 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z13_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z13_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 13b6a74d81..8b0f1b0ca7 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z144_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<20;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 b7bb522549..2984b980c7 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z14_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z14_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 c42bc51b06..461b5f93e7 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z15_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z15_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 c2c06e665f..e643968da1 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z160_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<22;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 afc9b1e5a3..426a778f27 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z16_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z16_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 b27bd90b96..6ee2722b07 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z176_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<24;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 c97a70ccdc..6fc9751176 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z18_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z18_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<2;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 a342cfe97c..3c540b3e15 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z192_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<27;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 955ae571a4..ed3609cd9b 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z208_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<29;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 2e63630301..246243701e 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z20_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z20_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 d2fefcb354..53793e87f1 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z224_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<31;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 01dd983597..ee4546d73a 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z22_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z22_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 53aeec8912..df754bcd8d 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z240_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<33;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 8f177ce26a..f33c12a104 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z24_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z24_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 b3d4c9a7de..219c2d2970 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z256_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<36;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 47b42fe0bf..3c887f17d9 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z26_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z26_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<3;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 a95d42eb4c..695502b25c 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z288_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<40;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 4eb1fd2682..8d6bf62622 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z28_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z28_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 11f07ae488..a38a282b71 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z2_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z2_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<0;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 88c2faca6a..5042fe1832 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z30_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z30_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 708263ce55..37c51ca8ed 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z320_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<45;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 25ce43d209..74e068897f 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z32_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z32_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<4;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 58c886f944..6b955dacc6 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z352_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<49;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 3bd5a91457..c2c079c8f9 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z36_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z36_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 d6f292f18e..4c30ddcdd8 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 @@ -12,25 +12,62 @@ 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) { 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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 zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -38,7 +75,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +87,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2361,2280 @@ void nrLDPC_cnProc_BG1_Z384_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<54;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 4f83ef2077..570c6e2df6 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z3_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z3_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<0;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 abad1b9dfb..ce5f40be59 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z40_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z40_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<5;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 faff4118f8..b88efc7869 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z44_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z44_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 cfc6439971..c7f3ac9c32 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z48_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z48_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<6;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 42e5c15f61..a1680e92c4 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z4_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z4_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<0;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 c06d1ff0ac..082c347511 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z52_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z52_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<7;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 e2796c0fa4..e05e2f8911 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z56_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z56_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 bf146bac70..389906e093 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z5_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z5_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<0;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 6080804547..a77c03aac1 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z60_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z60_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<8;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 5f3141dfe2..5eb0b825c1 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z64_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z64_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<9;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 8dd0fd28b0..6a61967676 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z6_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z6_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<1;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 219511aa1e..b92bb8bfc6 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z72_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z72_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<10;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 f825cdd6b9..7653951ec8 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z7_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z7_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<1;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 28fa67f2e6..1f0b27d63f 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z80_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z80_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<11;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 0aa4fead53..b29fe4bd04 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z88_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z88_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<12;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 f60ed7446b..3633d57f3d 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z8_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z8_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<1;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 12b66c065b..6ea97c7718 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z96_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z96_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<13;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } 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 0b141837be..1cc42eb87e 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 @@ -13,23 +13,53 @@ void nrLDPC_cnProc_BG1_Z9_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { ones = _mm512_set1_epi8((char)1); maxLLR = _mm512_set1_epi8((char)127); for (int i=0;i<0;i+=2) { +<<<<<<< HEAD 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)[12+i]; + 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); ((__m512i*)cnProcBufRes)[0+i] = _mm512_sign_epi16(min, sgn); - zmm0 = ((__m512i*)cnProcBuf)[7+i]; + zmm0 = ((__m512i*)cnProcBuf)[13+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); - zmm0 = ((__m512i*)cnProcBuf)[13+i]; + 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) { zmm0 = ((__m512i*)cnProcBuf)[0+i]; sgn = _mm512_sign_epi16(ones, zmm0); @@ -38,7 +68,11 @@ 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 zmm0 = ((__m512i*)cnProcBuf)[1+i]; sgn = _mm512_sign_epi16(ones, zmm0); min = _mm512_abs_epi8(zmm0); @@ -46,24 +80,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); - ((__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)[6+i]; - min = _mm512_min_epu8(min, _mm512_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)[1+i]; - sgn = _mm512_sign_epi16(ones, zmm0); - min = _mm512_abs_epi8(zmm0); - 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); +<<<<<<< HEAD ((__m512i*)cnProcBufRes)[1+i] = _mm512_sign_epi16(min, sgn); } //Process group with 4 BNs @@ -2337,5 +2354,2280 @@ void nrLDPC_cnProc_BG1_Z9_13_AVX512(int8_t* cnProcBuf,int8_t* cnProcBufRes) { 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]; + 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]; + 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); + } + 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)[69+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[129+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); + } +//Process group with 5 BNs + for (int i=0;i<1;i++) { + zmm0 = ((__m512i*)cnProcBuf)[285+i]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(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); + 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)[69+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)[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); + 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)[123+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)[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]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[708+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[732+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[756+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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[702+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[714+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[726+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[738+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[750+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, 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]; + 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]; + sgn = _mm512_sign_epi16(ones, zmm0); + min = _mm512_abs_epi8(zmm0); + zmm0 = ((__m512i*)cnProcBuf)[768+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[816+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[864+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[912+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[960+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1008+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1056+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1104+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1152+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1200+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1248+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1296+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1344+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1392+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1440+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1488+i]; + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); + sgn = _mm512_sign_epi16(sgn, zmm0); + zmm0 = ((__m512i*)cnProcBuf)[1536+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 } } diff --git a/openair1/PHY/CODING/nrLDPC_decoder_full/include/avx512bwintrin.h b/openair1/PHY/CODING/nrLDPC_decoder_full/include/avx512bwintrin.h index bf316cf48e..2b0fb6b5f0 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder_full/include/avx512bwintrin.h +++ b/openair1/PHY/CODING/nrLDPC_decoder_full/include/avx512bwintrin.h @@ -30,7 +30,7 @@ #ifndef __AVX512BW__ #pragma GCC push_options -//#pragma GCC target("avx512bw") +#pragma GCC target("avx512bw") #define __DISABLE_AVX512BW__ #endif /* __AVX512BW__ */ diff --git a/openair1/PHY/CODING/nrLDPC_decoder_full/include/avx512fintrin.h b/openair1/PHY/CODING/nrLDPC_decoder_full/include/avx512fintrin.h index 15e3b0ba94..afc80d62d6 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder_full/include/avx512fintrin.h +++ b/openair1/PHY/CODING/nrLDPC_decoder_full/include/avx512fintrin.h @@ -30,7 +30,7 @@ #ifndef __AVX512F__ #pragma GCC push_options -//#pragma GCC target("avx512f") +#pragma GCC target("avx512f") #define __DISABLE_AVX512F__ #endif /* __AVX512F__ */ diff --git a/openair1/PHY/CODING/nrLDPC_decoder_full/nrLDPC_bnProc.h b/openair1/PHY/CODING/nrLDPC_decoder_full/nrLDPC_bnProc.h index b61ca82717..9b6fda8f14 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder_full/nrLDPC_bnProc.h +++ b/openair1/PHY/CODING/nrLDPC_decoder_full/nrLDPC_bnProc.h @@ -23,7 +23,7 @@ * \brief Defines the functions for check node processing * Version AVX512 */ - +#include #ifndef __NR_LDPC_BNPROC__H__ #define __NR_LDPC_BNPROC__H__ @@ -59,7 +59,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc uint32_t cnOffsetInGroup; uint8_t idxBnGroup = 0; - __m512i zmm0, zmm1, zmmRes0, zmmRes1; + __m512i zmm0, zmm1, zmmRes0, zmmRes1,tmp; // ===================================================================== // Process group with 1 CN @@ -96,8 +96,8 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - //-*p_llrRes = _mm512_permute4x64_epi64(zmm0, 0xD8); // revenir ? - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + //-*p_llrRes = _mm512_permutevar_epi32 (tmp, zmm0); // revenir ? + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; } @@ -148,7 +148,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -201,7 +201,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -254,7 +254,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -307,7 +307,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -360,7 +360,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -413,7 +413,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -466,7 +466,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -519,7 +519,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -572,7 +572,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -625,7 +625,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -678,7 +678,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -731,7 +731,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -784,7 +784,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -837,7 +837,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -890,7 +890,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -943,7 +943,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -996,7 +996,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1049,7 +1049,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1102,7 +1102,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1155,7 +1155,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1208,7 +1208,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1261,7 +1261,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1314,7 +1314,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1367,7 +1367,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1420,7 +1420,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1473,7 +1473,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1526,7 +1526,7 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Pack results back to epi8 zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); - *p_llrRes = _mm512_permutex2var_epi16(zmm0, 0xD8,zmm1); + *p_llrRes = _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1571,16 +1571,16 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc // Add LLR from receiver input zmm0 = _mm512_cvtepi8_epi16(p_llrProcBuf[j]); - zmmRes0 = _mm512_adds_epi16(ymmRes0, ymm0); + zmmRes0 = _mm512_adds_epi16(zmmRes0, zmm0); - ymm1 = _mm512_cvtepi8_epi16(p_llrProcBuf[j+1]); - ymmRes1 = _mm512_adds_epi16(ymmRes1, ymm1); + zmm1 = _mm512_cvtepi8_epi16(p_llrProcBuf[j+1]); + zmmRes1 = _mm512_adds_epi16(zmmRes1, zmm1); // Pack results back to epi8 - ymm0 = _mm512_packs_epi16(ymmRes0, ymmRes1); - // ymm0 = [ymmRes1[255:128] ymmRes0[255:128] ymmRes1[127:0] ymmRes0[127:0]] - // p_llrRes = [ymmRes1[255:128] ymmRes1[127:0] ymmRes0[255:128] ymmRes0[127:0]] - *p_llrRes = _mm512_permute4x64_epi64(ymm0, 0xD8); + zmm0 = _mm512_packs_epi16(zmmRes0, zmmRes1); + // zmm0 = [zmmRes1[255:128] zmmRes0[255:128] zmmRes1[127:0] zmmRes0[127:0]] + // p_llrRes = [zmmRes1[255:128] zmmRes1[127:0] zmmRes0[255:128] zmmRes0[127:0]] + *p_llrRes= _mm512_permutex2var_epi16(zmm0,tmp,zmm1); // Next result p_llrRes++; @@ -1610,31 +1610,31 @@ static inline void nrLDPC_bnProcPc(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_proc for (i=0,j=0; i>5; uint64_t Mr = numLLR&63; - const __m512i* p_zeros = (__m512i*) zeros256_epi8; - const __m512i* p_ones = (__m512i*) ones256_epi8; + const __m512i* p_zeros = (__m512i*) zeros512_epi8; + const __m512i* p_ones = (__m512i*) ones512_epi8; for (i=0; i>5; uint64_t Mr = numLLR&63; - const __m512i* p_shuffle = (__m512i*) constShuffle_256_epi8; + const __m512i* p_shuffle = (__m512i*) constShuffle_512_epi8; for (i=0; i -#include "include/avx512fintrin.h" +#include +//#include "include/immintrin.h" + /** \brief Performs CN processing for BG2 on the CN processing buffer and stores the results in the CN processing results buffer. @@ -110,12 +112,12 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // 64 CNS of second BN zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); // Store result @@ -157,13 +159,13 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG4[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<3; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG4[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -206,13 +208,13 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG5[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<4; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG5[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -256,13 +258,13 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG6[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<5; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG6[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -307,13 +309,13 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG8[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<7; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG8[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -359,13 +361,13 @@ static inline void nrLDPC_cnProc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG10[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<9; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG10[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -442,12 +444,12 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr { // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][0] + i]; - sgn = mm512_sign_epi16(*p_ones, zmm0); revenir - min = _m512_abs_epi8(zmm0); + sgn = mm512_sign_epi16(*p_ones, zmm0); + min = _mm512_abs_epi8(zmm0); // 64 CNS of second BN zmm0 = p_cnProcBuf[lut_idxCnProcG3[j][1] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); // Store result @@ -489,13 +491,13 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG4[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<3; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG4[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -539,13 +541,13 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG5[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<4; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG5[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -590,13 +592,13 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG6[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<5; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG6[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -642,13 +644,13 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG7[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<6; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG7[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -694,13 +696,13 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG8[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<7; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG8[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -747,13 +749,13 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG9[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<8; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG9[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -800,13 +802,13 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG10[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<9; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG10[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -857,13 +859,13 @@ static inline void nrLDPC_cnProc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf* p_pr // Abs and sign of 64 CNS (first BN) zmm0 = p_cnProcBuf[lut_idxCnProcG19[j][0] + i]; sgn = mm512_sign_epi16(*p_ones, zmm0); - min = _m512_abs_epi8(zmm0); + min = _mm512_abs_epi8(zmm0); // Loop over BNs for (k=1; k<18; k++) { zmm0 = p_cnProcBuf[lut_idxCnProcG19[j][k] + i]; - min = _mm512_min_epu8(min, _m512_abs_epi8(zmm0)); + min = _mm512_min_epu8(min, _mm512_abs_epi8(zmm0)); sgn = mm512_sign_epi16(sgn, zmm0); } @@ -938,7 +940,7 @@ static inline uint64_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1072,7 +1074,7 @@ static inline uint64_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1226,7 +1228,7 @@ static inline uint64_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1341,7 +1343,7 @@ static inline uint64_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1408,7 +1410,7 @@ static inline uint64_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1422,12 +1424,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG1(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<10; j++) { // BN offset is units of 1*384/64 = 6 - ymm0 = p_cnProcBuf [j*6 + i]; - ymm1 = p_cnProcBufRes[j*6 + i]; + zmm0 = p_cnProcBuf [j*6 + i]; + zmm1 = p_cnProcBufRes[j*6 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1543,7 +1545,7 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf uint64_t Mrem; uint64_ ; - __m512i ymm0, ymm1; + __m512i zmm0, zmm1; // ===================================================================== // Process group with 3 BNs @@ -1574,12 +1576,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<3; j++) { // BN offset is units of (6*384/32) = 72 - ymm0 = p_cnProcBuf [j*72 + i]; - ymm1 = p_cnProcBufRes[j*72 + i]; + zmm0 = p_cnProcBuf [j*72 + i]; + zmm1 = p_cnProcBufRes[j*72 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1593,12 +1595,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<3; j++) { // BN offset is units of (6*384/32) = 72 - ymm0 = p_cnProcBuf [j*72 + i]; - ymm1 = p_cnProcBufRes[j*72 + i]; + zmm0 = p_cnProcBuf [j*72 + i]; + zmm1 = p_cnProcBufRes[j*72 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1641,12 +1643,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<4; j++) { // BN offset is units of 20*384/32 = 240 - ymm0 = p_cnProcBuf [j*240 + i]; - ymm1 = p_cnProcBufRes[j*240 + i]; + zmm0 = p_cnProcBuf [j*240 + i]; + zmm1 = p_cnProcBufRes[j*240 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1660,12 +1662,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<4; j++) { // BN offset is units of 20*384/32 = 240 - ymm0 = p_cnProcBuf [j*240 + i]; - ymm1 = p_cnProcBufRes[j*240 + i]; + zmm0 = p_cnProcBuf [j*240 + i]; + zmm1 = p_cnProcBufRes[j*240 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1708,12 +1710,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<5; j++) { // BN offset is units of 9*384/32 = 108 - ymm0 = p_cnProcBuf [j*108 + i]; - ymm1 = p_cnProcBufRes[j*108 + i]; + zmm0 = p_cnProcBuf [j*108 + i]; + zmm1 = p_cnProcBufRes[j*108 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1727,12 +1729,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<5; j++) { // BN offset is units of 9*384/32 = 108 - ymm0 = p_cnProcBuf [j*108 + i]; - ymm1 = p_cnProcBufRes[j*108 + i]; + zmm0 = p_cnProcBuf [j*108 + i]; + zmm1 = p_cnProcBufRes[j*108 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1775,12 +1777,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<6; j++) { // BN offset is units of 3*384/32 = 36 - ymm0 = p_cnProcBuf [j*36 + i]; - ymm1 = p_cnProcBufRes[j*36 + i]; + zmm0 = p_cnProcBuf [j*36 + i]; + zmm1 = p_cnProcBufRes[j*36 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1794,12 +1796,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<6; j++) { // BN offset is units of 3*384/32 = 36 - ymm0 = p_cnProcBuf [j*36 + i]; - ymm1 = p_cnProcBufRes[j*36 + i]; + zmm0 = p_cnProcBuf [j*36 + i]; + zmm1 = p_cnProcBufRes[j*36 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1842,12 +1844,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<8; j++) { // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; + zmm0 = p_cnProcBuf [j*24 + i]; + zmm1 = p_cnProcBufRes[j*24 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1861,12 +1863,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<8; j++) { // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; + zmm0 = p_cnProcBuf [j*24 + i]; + zmm1 = p_cnProcBufRes[j*24 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1909,12 +1911,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<10; j++) { // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; + zmm0 = p_cnProcBuf [j*24 + i]; + zmm1 = p_cnProcBufRes[j*24 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 @@ -1928,12 +1930,12 @@ static inline uint64_t nrLDPC_cnProcPc_BG2(t_nrLDPC_lut* p_lut, t_nrLDPC_procBuf for (j=0; j<10; j++) { // BN offset is units of 2*384/32 = 24 - ymm0 = p_cnProcBuf [j*24 + i]; - ymm1 = p_cnProcBufRes[j*24 + i]; + zmm0 = p_cnProcBuf [j*24 + i]; + zmm1 = p_cnProcBufRes[j*24 + i]; // Add BN and input LLR, extract the sign bit // and add in GF(2) (xor) - pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(ymm0,ymm1)); + pcRes ^= _mm512_movemask_epi8(_mm512_adds_epi8(zmm0,zmm1)); } // If no error pcRes should be 0 diff --git a/openair1/PHY/CODING/nrLDPC_decoder_full/nrLDPC_decoder.c b/openair1/PHY/CODING/nrLDPC_decoder_full/nrLDPC_decoder.c index 9ff57acf22..b8075ee528 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder_full/nrLDPC_decoder.c +++ b/openair1/PHY/CODING/nrLDPC_decoder_full/nrLDPC_decoder.c @@ -29,17 +29,15 @@ */ #include -//#include +#include #include "nrLDPCdecoder_defs.h" #include "nrLDPC_types.h" #include "nrLDPC_init.h" #include "nrLDPC_mPass.h" #include "nrLDPC_cnProc.h" #include "nrLDPC_bnProc.h" - +#include //#include "include/immintrin.h" -#include "include/avx512fintrin.h" -#include "include/avx2intrin.h" #define NR_LDPC_ENABLE_PARITY_CHECK #define NR_LDPC_PROFILER_DETAIL